package com.crazy.service.sys;

import java.util.Collection;

import org.hibernate.criterion.Order;
import org.springframework.data.domain.Page;

import com.crazy.entity.sys.PubResource;

/**
 * 资源Service接口
 * 
 * @author Zhang Weiwei
 * @since 2013-9-20下午1:48:44
 */
public interface PubResourceService extends BaseService<PubResource> {
	/**
	 * 将资源集合转换为json字符串
	 * 
	 * @author Zhang Weiwei
	 * @since 2013-9-23下午9:40:00
	 * @param list
	 *            资源集合
	 * @return
	 */
	String listToJsonStringForAdd(Collection<PubResource> list);

	/**
	 * 将资源集合转换为json字符串
	 * 
	 * @author Zhang Weiwei
	 * @since 2013-9-23下午9:47:06
	 * @param list
	 *            资源集合
	 * @param pubResource
	 *            选择的资源
	 * @return
	 */
	String listToJsonStringForUpdate(Collection<PubResource> list,
			PubResource pubResource);

	/**
	 * 按用户主键查询菜单集合，并将其转换为json字符串
	 * 
	 * @author Zhang Weiwei
	 * @since 2013-11-3下午4:33:55
	 * @param userId
	 *            用户主键
	 * @param contextPath
	 *            上下文路径
	 * @return
	 */
	String findMenuListToJsonString(String userId, String contextPath);

	/**
	 * 查询资源根节点
	 * 
	 * @author zhang weiwei
	 * @since 2013-11-4下午2:38:12
	 * @return
	 */
	PubResource findRootPubResource();

	Page<PubResource> findPubResource(Integer pageNo, Integer pageSize,
			PubResource resource, Order... orders);
}
